Some storage systems, especially removable storage systems such as USB, SD, and micro SD drives, have a high exposure to sudden power off or write-abort scenarios. If a write abort happens while actual data is being programmed to the memory cells, the storage system typically does not have a mechanism to record, at that instant, the fact that a write abort is taking place. Hence, during every initialization/power-up of the storage system, the storage system can scan all the open blocks to check for the first erased page in the block and identify the last-written page. If there was a write abort where power was cut-off after some amount of programming occurred, the last-written page in the block would give a read failure, and the storage system would detect that a write abort occurred on that page. Once a write abort is detected, the storage system could mark the block as write aborted and not allow any further programming of the block. Previous valid data in the block could be copied to another block as part of the write-abort handling process.
In storage modules with memory cells that can store more than one bit per cell, a lower page of data is typically first written in the memory cells, and then later, an upper page of data is written in the memory cells. To detect whether a lower page of data is erased, the storage system can read the lower page using a default read level close to 0 volts. If a certain number of memory cells provides voltage greater that this default level (the system “erase bit ignore” criteria), the lower page is detected as having a write abort; otherwise, the lower page is detected as being erased. In case there are memory cells between 0 volts and the default level, the storage system can move the lower page read voltage to 0 and read the page again. If a certain number of memory cells provides more than 0 volts, the lower page is detected as having a write abort; otherwise, the lower page is detected as being erased.